processing 延时3秒

just delay for 3s.

python 版本

# !/usr/bin/python
# coding : utf-8 
# CopyRight 2012 Adou , All Rights Reserved .

import cv , cv2
import threading
import Queue
import time

class Mirror(threading.Thread):
    ''''''
    def __init__(self,queue):
        self.__queue = queue
        threading.Thread.__init__(self)
        self.setDaemon(True)

    def run(self):
        while True:
            try :
                img , tm = self.__queue.get()
                while time.time() < tm+3 :
                    #time.sleep(0.1)
                    continue
                cv2.imshow('Mirror',img)
                cv2.waitKey(10)
                self.__queue.task_done()
            except Queue.Empty:
                break


if __name__ == '__main__':
    queue = Queue.Queue(0)
    mirror = Mirror(queue)
    mirror.start()

    cam = cv2.VideoCapture(0)
    if not cam.isOpened() :
        sys.exit(0)

    while True :
        if not cam.grab() :
            break
        flag,img = cam.retrieve()
        #flag,img = cam.read()
        if not flag :
            break

        tm = time.time()
        queue.put((img,tm))
        ch = cv2.waitKey(20)
        if ch == ord(' '):
            break

    queue.join()